package process

import (
	"chat-cli/utils"
	"fmt"
	"net"
)

//显示菜单，保持跟服务端通讯

//显示登录成功后的界面
func ShowMenu() {
	fmt.Println("--------恭喜XXXXXX登录成功-------------")
	fmt.Println("---------1.显示在线用户列表------------")
	fmt.Println("---------2.发送消息--------------------")
	fmt.Println("---------3.信息列表-------------------")
	fmt.Println("---------4.退出系统--------------------")
	fmt.Println("请选择1--4：")
	var key int
	fmt.Scanf("%d \n", &key)
	switch key {
	case 1:
		fmt.Println("显示在线用户列表-")
	case 2:
		fmt.Println("发送消息")
	case 3:
		fmt.Println("信息列表")
	case 4:
		fmt.Println("你退出了系统")
		panic("system exit") //defer 不会执行  小心
	default:
		fmt.Println("输入错误，请重新输入..")
	}
}

//和服务器保持通讯
func ProcessServerMes(Conn net.Conn) {
	//创建一个transfer实例，不停的读取服务器发送的消息
	tf := &utils.Transfer{
		Conn: Conn,
	}
	for {
		fmt.Println("客户端正在等待读取服务器发来的消息:")
		mes, err := tf.ReadPkg()
		if err != nil {
			fmt.Println("获取服务端的数据异常 ： err=", err)
			return
		}
		//如果读取到数据  进一步的逻辑处理
		fmt.Println(mes)
	}
}
